// mongoose的其他操作
const mongoose = require("mongoose");
mongoose.connect("mongodb://127.0.0.1/mytest", err => {
  if (err) {
    return console.log(err);
  }
  console.log("数据库链接成功");
})

// 建立骨架
let schema = mongoose.Schema({
  name: String,
  age: Number
})
// 创建模型
let userModel = mongoose.model("users", schema);

// 1.増：create(数组、对象);
// mongoose 条件的内容，会自带一个__v字段。
// let arr = [{ name: "百变小樱", age: 22 }, { name: "王小明", age: 20 }, { name: "李小狼", age: 20 }];

// userModel.create(arr, err => {
//   if (err) {
//     return console.log(err);
//   }
//   console.log("添加成功！");
// });

// ; (async function () {
//   try {
//     await userModel.create({ name: "小红", age: 19 });
//     console.log("添加成功");
//   } catch (err) {
//     console.log(err);
//   }
// })();

// 2.删除remove ；可以通过deleteOne删除一条，deleteMany删除多条
// ; (async function () {
// try {
//   let res = await userModel.remove({ age: 19 }); //res是删除之后的结果、
//   console.log(res, "删除成功！");
// } catch (err) {
//   console.log(err);
// }

//   try {
//     let res = await userModel.deleteOne({ age: 19 })  // res是删除之后的结果。
//     console.log("删除成功", res)
//   } catch (err) {
//     console.log(err)
//   }
// })();

// 3.修改：updataMany 和 updataOne
// 把年龄大于22的用户名改成"小樱"
// ; (async function () {
//   try {
//     let res = await userModel.updateMany({ age: { $gt: 20 } }, { $set: { name: "小樱" } });
//     console.log(res, "修改成功！");
//   } catch (err) {
//     console.log(err);
//   }
// })();

// 4.查询find 
; (async function () {
  try {
    // 查询所有年龄大于19的人 ，且年龄按照正序排列 ，跳过前2条 在查询2条数据
    // 选取name字段 不选取 _id字段
    let res = await userModel.find({ age: { $gt: 19 } }, { name: 1, _id: 0 }).sort({ age: 1 }).skip(1).limit(1);
    console.log(res);
  } catch (err) {
    console.log(err);
  }
})();